package com.yuba.front.mapper;

import com.yuba.front.domain.Tags;
import com.yuba.front.domain.vo.TagHotVo;
import com.yuba.front.domain.vo.TagsVo;
import com.yuba.common.mybatis.core.mapper.BaseMapperPlus;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 标签Mapper接口
 *
 * @author modakai
 * @date 2024-12-02
 */
public interface TagsMapper extends BaseMapperPlus<Tags, TagsVo> {

    /**
     * 根据文章id查询标签列表
     * @param postId 文章id
     * @return 标签列表
     */
    List<String> selectPostTagList(Long postId);

    /**
     * 根据标签名称查询标签列表
     * @param tags 标签名称列表
     * @return 标签列表
     */
    List<Tags> selectListByTagName(List<String> tags);

    /**
     * 删除关联表中的 tags
     * @param postId 文章id
     * @param tagId 标签id
     */
    void deletePostTagByPostsId(@Param("postsId") Long postId,@Param("tagId")  Long tagId);

    /**
     * 批量插入帖子标签关联表
     * @param postId 帖子id
     * @param tags 标签id列表
     */
    void insertPostTag(@Param("postsId") Long postId,@Param("tags") List<Long> tags);

    /**
     * 查询热门标签
     * @return 热门标签列表
     */
    List<TagHotVo> selectHot();

    void deleteWithPostTag(List<Long> ids);
}
